package com.superman.supermarket.client.gin;

import com.google.gwt.inject.client.AbstractGinModule;
import com.google.inject.Singleton;
import com.superman.supermarket.client.composite.orderlist.opt.OPButtonOperator;
import com.superman.supermarket.client.composite.orderlist.opt.OPButtonOperatorImpl;
import com.superman.supermarket.client.composite.orderlist.opt.OpButtonOperatorFactory;
import com.superman.supermarket.client.mvp.MyHistoryMapper;
import com.superman.supermarket.client.mvp.MyPlaceFactory;
import com.superman.supermarket.client.view.aboutus.AboutUsView;
import com.superman.supermarket.client.view.aboutus.AboutUsViewImpl;
import com.superman.supermarket.client.view.addrchoose.AddrChooseView;
import com.superman.supermarket.client.view.addrchoose.AddrChooseViewImpl;
import com.superman.supermarket.client.view.addredit.AddrEditView;
import com.superman.supermarket.client.view.addredit.AddrEditViewImpl;
import com.superman.supermarket.client.view.addrlist.AddrListView;
import com.superman.supermarket.client.view.addrlist.AddrListViewImpl;
import com.superman.supermarket.client.view.cart.CartView;
import com.superman.supermarket.client.view.cart.CartViewImpl;
import com.superman.supermarket.client.view.casherdesk.CasherDeskView;
import com.superman.supermarket.client.view.casherdesk.CasherDeskViewImpl;
import com.superman.supermarket.client.view.categories.SKUCategoriesView;
import com.superman.supermarket.client.view.categories.SKUCategoriesViewImpl;
import com.superman.supermarket.client.view.collection.CollectionView;
import com.superman.supermarket.client.view.collection.CollectionViewImpl;
import com.superman.supermarket.client.view.comment.CommentView;
import com.superman.supermarket.client.view.comment.CommentViewImpl;
import com.superman.supermarket.client.view.commentlist.CommentListView;
import com.superman.supermarket.client.view.commentlist.CommentListViewImpl;
import com.superman.supermarket.client.view.home.HomeView;
import com.superman.supermarket.client.view.home.HomeViewKaoLaImpl;
import com.superman.supermarket.client.view.logistics.OrderLogisticsView;
import com.superman.supermarket.client.view.logistics.OrderLogisticsViewImpl;
import com.superman.supermarket.client.view.mycouponlist.MyCouponListView;
import com.superman.supermarket.client.view.mycouponlist.MyCouponListViewImpl;
import com.superman.supermarket.client.view.orderdetail.OrderDetailView;
import com.superman.supermarket.client.view.orderdetail.OrderDetailViewImpl;
import com.superman.supermarket.client.view.orderlist.OrderListView;
import com.superman.supermarket.client.view.orderlist.OrderListViewImpl;
import com.superman.supermarket.client.view.person.PersonView;
import com.superman.supermarket.client.view.person.PersonViewImpl;
import com.superman.supermarket.client.view.preorder.PreorderView;
import com.superman.supermarket.client.view.preorder.PreorderViewImpl;
import com.superman.supermarket.client.view.refundapplication.RefundApplicationView;
import com.superman.supermarket.client.view.refundapplication.RefundApplicationViewImpl;
import com.superman.supermarket.client.view.refunddetail.RefundDetailView;
import com.superman.supermarket.client.view.refunddetail.RefundDetailViewImpl;
import com.superman.supermarket.client.view.refundgoods.RefundGoodsView;
import com.superman.supermarket.client.view.refundgoods.RefundGoodsViewImpl;
import com.superman.supermarket.client.view.refundlist.RefundListView;
import com.superman.supermarket.client.view.refundlist.RefundListViewImpl;
import com.superman.supermarket.client.view.refundmodify.RefundModifyView;
import com.superman.supermarket.client.view.refundmodify.RefundModifyViewImpl;
import com.superman.supermarket.client.view.refundprocess.RefundProcessView;
import com.superman.supermarket.client.view.refundprocess.RefundProcessViewImpl;
import com.superman.supermarket.client.view.search.GoodsSearchView;
import com.superman.supermarket.client.view.search.GoodsSearchViewImpl;
import com.superman.supermarket.client.view.sku.SKUView;
import com.superman.supermarket.client.view.sku.SKUViewImpl;
import com.superman.supermarket.client.view.skulist.SkuListView;
import com.superman.supermarket.client.view.skulist.SkuListViewImpl;
import com.superman.supermarket.client.view.store.StoreView;
import com.superman.supermarket.client.view.store.StoreViewImpl;
import com.superman.supermarket.client.view.storecouponlist.StoreCouponListView;
import com.superman.supermarket.client.view.storecouponlist.StoreCouponListViewImpl;

/**
 * 项目gin模块绑定类
 * 
 * @author superman
 * @version 2018年7月5日下午9:39:31
 */
public class ShopGinModule extends AbstractGinModule {

	@Override
	protected void configure() {
		bind(MyPlaceFactory.class);
		bind(MyHistoryMapper.class).in(Singleton.class);

		bind(AboutUsView.class).to(AboutUsViewImpl.class);
		bind(HomeView.class).to(HomeViewKaoLaImpl.class);
		bind(SKUView.class).to(SKUViewImpl.class);
		bind(AddrListView.class).to(AddrListViewImpl.class);
		bind(AddrChooseView.class).to(AddrChooseViewImpl.class);
		bind(AddrEditView.class).to(AddrEditViewImpl.class);
		bind(CartView.class).to(CartViewImpl.class);
		bind(CollectionView.class).to(CollectionViewImpl.class);
		bind(OrderListView.class).to(OrderListViewImpl.class);
		bind(OrderDetailView.class).to(OrderDetailViewImpl.class);
		bind(PreorderView.class).to(PreorderViewImpl.class);
		bind(PersonView.class).to(PersonViewImpl.class);
		bind(StoreView.class).to(StoreViewImpl.class);
		bind(GoodsSearchView.class).to(GoodsSearchViewImpl.class);
		bind(SKUCategoriesView.class).to(SKUCategoriesViewImpl.class);
		bind(CasherDeskView.class).to(CasherDeskViewImpl.class);
		bind(SkuListView.class).to(SkuListViewImpl.class);
		bind(OrderLogisticsView.class).to(OrderLogisticsViewImpl.class);
		bind(CommentView.class).to(CommentViewImpl.class);
		bind(CommentListView.class).to(CommentListViewImpl.class);
		bind(RefundListView.class).to(RefundListViewImpl.class);
		bind(RefundApplicationView.class).to(RefundApplicationViewImpl.class);
		bind(StoreCouponListView.class).to(StoreCouponListViewImpl.class);
		bind(MyCouponListView.class).to(MyCouponListViewImpl.class);
		bind(RefundDetailView.class).to(RefundDetailViewImpl.class);
		bind(RefundProcessView.class).to(RefundProcessViewImpl.class);
		bind(RefundModifyView.class).to(RefundModifyViewImpl.class);
		bind(RefundGoodsView.class).to(RefundGoodsViewImpl.class);

		bind(OPButtonOperator.class).to(OPButtonOperatorImpl.class).in(Singleton.class);
		bind(OpButtonOperatorFactory.class).in(Singleton.class);

	}

}
